/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Dato;

import Objetos.Personas;
import Utilitarios.Conexion;
import java.io.*;
import java.sql.*;
import java.util.ArrayList;
import javax.swing.*;
import javax.swing.table.*;

/**
 *
 * @author Omar Heráclides
 */
public class DPersonas {
    // static Connection conn = null;

    static ResultSet rs = null;
    static Statement st = null;

    public static ResultSet Select(String query) throws SQLException {

        Conexion conex = new Conexion();
        st = conex.ObtenerConexion();
        rs = st.executeQuery(query);
        return rs;
    }

    public static void Insert(String query) throws SQLException {

        Conexion conex = new Conexion();
        st = conex.ObtenerConexion();
        st.execute(query);
        st.close();
    }

    public static void UpDate(String query) throws SQLException {

        Conexion conex = new Conexion();
        st = conex.ObtenerConexion();
        st.execute(query);
        st.close();
    }

    public DefaultTableModel MostrarPersona() throws SQLException {
        System.out.println("entrooo");
        DefaultTableModel dtm = new DefaultTableModel();
        String titulos[] = {"Codigo", "Nombre", "Ap. Paterno", "Ap. Materno", "DNI", "Fecha Nacimiento", "Sexo"};
        dtm.setColumnIdentifiers(titulos);

        Object datos[] = new Object[7];
        ResultSet rs;
        rs = Select("select * from persona where eliminado='" + false + "'");


        while (rs.next()) {
            datos[0] = (String) rs.getString(1);
            datos[1] = rs.getString(2);
            datos[2] = rs.getString(3);
            datos[3] = rs.getString(4);
            datos[4] = rs.getString(5);
            datos[5] = rs.getString(6);
            datos[6] = rs.getString(7);
            dtm.addRow(datos);
            System.out.println("1111" + datos[2]);
            System.out.println("1111" + rs.getString(7));

        }
        return dtm;

    }

    public DefaultTableModel LimpiarTabla() {
        DefaultTableModel dtm = new DefaultTableModel();
        String titulos[] = {"Codigo", "Nombre", "Ap. Paterno", "Ap. Materno", "DNI", "Fecha Nacimiento", "Sexo"};
        dtm.setColumnIdentifiers(titulos);
        Object datos[] = new Object[5];
        dtm.addRow(datos);
        return dtm;
    }

    public DefaultTableModel SelectPersona(String txtCadBuscar, String txtVarBuscar) throws SQLException {
        String cadena = "";
        DefaultTableModel dtm = new DefaultTableModel();
        String titulos[] = {"Codigo", "Nombre", "Ap. Paterno", "Ap. Materno", "DNI", "Fecha Nacimiento", "Sexo"};
        dtm.setColumnIdentifiers(titulos);
        if (txtVarBuscar.equals("DNI")) {
            cadena = "select * from persona where DNI='" + txtCadBuscar + "'";
        } else {
            cadena = "select * from persona where apellido_paterno like '%" + txtCadBuscar + "%'";
        }

        Object datos[] = new Object[7];
        ResultSet rs;
        rs = Select(cadena);

        while (rs.next()) {

            datos[0] = (String) rs.getString(1);
            datos[1] = rs.getString(2);
            datos[2] = rs.getString(3);
            datos[3] = rs.getString(4);
            datos[4] = rs.getString(5);
            datos[5] = rs.getString(6);
            datos[6] = rs.getString(7);
            dtm.addRow(datos);
        }
//           

        return dtm;
    }

    public void AgregarPersona(Personas objPersona) throws SQLException {

        String comando;
        comando = "insert INTO persona (idpersona, nombres, apellido_paterno, apellido_materno, dni, fecha_nacimiento, sexo, eliminado) values ";
        comando = comando + "(" + objPersona.getIdPersona() + ",'" + objPersona.getNombre() + "','" + objPersona.getApPaterno() + "','" + objPersona.getApMaterno() + "','" + objPersona.getDNI() + "','" + objPersona.getFecha() + "','" + objPersona.getSexo() + "','" + false + "')";
        //  JOptionPane.showMessageDialog(null, comando, "Información", JOptionPane.INFORMATION_MESSAGE);
        Insert(comando);
    }

    public void ModificarPersonas(Personas objPersona) throws SQLException {
        String comando;

        comando = "UPDATE persona SET nombres='" + objPersona.getNombre() + "', apellido_paterno='" + objPersona.getApPaterno() + "', apellido_materno='" + objPersona.getApMaterno() + "', dni='" + objPersona.getDNI() + "', fecha_nacimiento='" + objPersona.getFecha() + "', sexo='" + objPersona.getSexo() + "'";
        comando = comando + " WHERE idpersona=" + objPersona.getIdPersona() + "";
        //     JOptionPane.showMessageDialog(null, comando, "Información", JOptionPane.INFORMATION_MESSAGE);                                             
        UpDate(comando);
    }

    public void EliminarPersonas(int cod) throws SQLException {
        String comando;
        comando = "UPDATE persona SET eliminado='" + true + "'";
        comando = comando + " WHERE idpersona=" + cod + "";
        UpDate(comando);
    }

    public Integer ObtenerIdPersona() throws SQLException {
        String comando;
        comando = "Select MAX(idpersona) from persona";
        int num = 1;
        ResultSet rs = Select(comando);
        while (rs.next()) {
            num = Integer.parseInt(rs.getString(1));
        }
        num++;
        System.out.println(num);
        return num;
    }

    public ArrayList<String> ObtenerPersonas() throws SQLException {
       ArrayList<String> arr = new ArrayList();
        String comando;
        comando = "Select nombres, apellido_paterno from persona";
        String num="";
        ResultSet rs = Select(comando);
        while (rs.next()) {
            num = rs.getString(1);
        }        
        return arr;      
    }
    
    
    public ArrayList<String> ObtenerDNI() throws SQLException {
       ArrayList<String> arr = new ArrayList();
        String comando;
        comando = "Select dni from persona";
        String num="";
        ResultSet rs = Select(comando);
        while (rs.next()) {
            arr.add(rs.getString(1));
        }        
        return arr;      
    }
    
}
